﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
using Microsoft.Office.Interop.Excel;
namespace GUI
{
    public partial class FrmBaoCaoBan : Form
    {
        BanBUS ct = new BanBUS();
        public FrmBaoCaoBan()
        {
            InitializeComponent();
            List<BanDTO> ds = ct.dsban_new();
            cbBan.DataSource = ds;
            cbBan.DisplayMember ="maban";
            cbBan.ValueMember = "maban";
           
         }
        
        private void button1_Click(object sender, EventArgs e)
        {
            BaoCaoBus a = new BaoCaoBus();
            if (tbBngaybd.Text == null  || tbBnambd.Text == null
              || tbBngaykt.Text == null || tbBnamkt.Text == null)
            {
                MessageBox.Show("bạn chưa điền đủ thông tin vui lòng nhập đầy đủ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            else {

                if (rdBngay.Checked == true)
                {
                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = Convert.ToInt32(tbBngaybd.Text);
                    int Thangbd = Convert.ToInt32(cbBthangbd.SelectedItem.ToString());
                    int Nambd = Convert.ToInt32(tbBnambd.Text);
                    bc.GioVao = Thangbd + "-" + Ngaybd + "-" + Nambd;
                    int Ngaykt = Convert.ToInt32(tbBngaykt.Text);
                    int Thangkt = Convert.ToInt32(cbBthangkt.SelectedItem.ToString());
                    int Namkt = Convert.ToInt32(tbBnamkt.Text);
                    if (a.kiemtra(Ngaybd, Thangbd, Nambd) == 0)
                    {
                        MessageBox.Show("ngày tháng năm không hợp lệ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    if (a.kiemtra(Ngaykt, Thangkt, Namkt) == 0)
                    {
                        MessageBox.Show("ngày tháng năm không hợp lệ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    DateTime n1 = DateTime.Parse(cbBthangbd.SelectedItem.ToString() + "/" + tbBngaybd.Text + "/" + tbBnambd.Text);
                    DateTime n2 = DateTime.Parse(cbBthangkt.SelectedItem.ToString() + "/" + tbBngaykt.Text + "/" + tbBnamkt.Text);

                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;
                    string gt = cbBan.SelectedValue.ToString();
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocaoban_theongay(bc, gt);
                    dataGridView_BCban.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_BCban.Rows.Add(ds[i].Ngay, ds[i].Thang, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbBdoanhthu.Text = kq.ToString();
                }
                else if (rbBthang.Checked == true)
                {

                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = 1;
                    int Thangbd = Convert.ToInt32(cbBthangbd.SelectedItem.ToString());
                    int Nambd = Convert.ToInt32(tbBnambd.Text);
                    bc.GioVao = Thangbd + "-" + Ngaybd + "-" + Nambd;
                   
                    int Thangkt = Convert.ToInt32(cbBthangkt.SelectedItem.ToString());
                    int Namkt = Convert.ToInt32(tbBnamkt.Text);
                    int Ngaykt = a.getngay(Thangkt,Namkt);
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;
                    string gt = cbBan.SelectedValue.ToString();
                    DateTime n1 = DateTime.Parse(cbBthangbd.SelectedItem.ToString() + "/" + Ngaybd + "/" + tbBnambd.Text);
                    DateTime n2 = DateTime.Parse(cbBthangkt.SelectedItem.ToString() + "/" + Ngaykt + "/" + tbBnamkt.Text);

                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocaoban_theothang(bc, gt);
                    dataGridView_BCban.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_BCban.Rows.Add(null, ds[i].Thang, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbBdoanhthu.Text = kq.ToString();
                }
                else if (rdBnam.Checked == true)
                {
                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = 1;
                    int Thangbd = 1;
                    int Nambd = Convert.ToInt32(tbBnambd.Text);
                    bc.GioVao = Thangbd + "-" + Ngaybd + "-" + Nambd;
                    int Ngaykt = 31;
                    int Thangkt = 12;
                    int Namkt = Convert.ToInt32(tbBnamkt.Text);
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;
                    DateTime n1 = DateTime.Parse(Thangbd + "/" + tbBngaybd.Text + "/" + tbBnambd.Text);
                    DateTime n2 = DateTime.Parse(Thangkt + "/" + tbBngaykt.Text + "/" + tbBnamkt.Text);

                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    string gt = cbBan.SelectedValue.ToString();
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocaoban_theonam(bc, gt);
                    dataGridView_BCban.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_BCban.Rows.Add(null, null, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbBdoanhthu.Text = kq.ToString();
                }
                else
                    MessageBox.Show("chưa check muc chọn \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);


            }
        }

        private void rdBngay_CheckedChanged(object sender, EventArgs e)
        {
            tbBngaybd.ReadOnly = false;
            tbBngaykt.ReadOnly = false;
            cbBthangbd.Visible = true;
            cbBthangkt.Visible = true;
            tbBnambd.ReadOnly = false;
            tbBnamkt.ReadOnly = false;
        }

        private void rbBthang_CheckedChanged(object sender, EventArgs e)
        {
            tbBngaybd.ReadOnly = true;
            tbBngaykt.ReadOnly = true;
            cbBthangbd.Visible = true;
            cbBthangkt.Visible = true;
            tbBnambd.ReadOnly = false;
            tbBnamkt.ReadOnly = false;
        }

        private void rdBnam_CheckedChanged(object sender, EventArgs e)
        {
            tbBngaybd.ReadOnly = true;
            tbBngaykt.ReadOnly = true;
            cbBthangbd.Visible = false;
            cbBthangkt.Visible = false;
            tbBnambd.ReadOnly = false;
            tbBnamkt.ReadOnly = false;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void FrmBaoCaoBan_FormClosed(object sender, FormClosedEventArgs e)
        {
            Program.frm_manhinhchinh.sub_mn_baocaoban.Checked = false;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application la = new Microsoft.Office.Interop.Excel.Application();
            Workbook wb = la.Workbooks.Add(XlSheetType.xlWorksheet);
            Worksheet ws = (Worksheet)la.ActiveSheet;

            if (rdBngay.Checked == true)
            {

                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_BCban.RowCount; j++)
                {


                    ws.Cells[i, 1] = dataGridView_BCban.Rows[j].Cells[0].Value;
                    ws.Cells[i, 2] = dataGridView_BCban.Rows[j].Cells[1].Value;
                    ws.Cells[i, 3] = dataGridView_BCban.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_BCban.Rows[j].Cells[3].Value;

                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbBdoanhthu.Text;

            }
            else if (rbBthang.Checked == true)
            {
                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_BCban.RowCount; j++)
                {



                    ws.Cells[i, 2] = dataGridView_BCban.Rows[j].Cells[1].Value;
                    ws.Cells[i, 3] = dataGridView_BCban.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_BCban.Rows[j].Cells[3].Value;

                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbBdoanhthu.Text;

            }
            else if (rdBnam.Checked == true)
            {
                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_BCban.RowCount; j++)
                {
                    ws.Cells[i, 3] = dataGridView_BCban.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_BCban.Rows[j].Cells[3].Value;
                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbBdoanhthu.Text;

            }
            else
                MessageBox.Show("chưa check muc chọn \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);


        }

        private void FrmBaoCaoBan_Load(object sender, EventArgs e)
        {

        }

        private void tbBngaybd_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbBnambd_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbBngaykt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbBnamkt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

 
        

    }
}
